:root
{
--player-width: clamp(var(--player-min-width), var(--vh) * 16 / 9, var(--vw) / 3 - var(--chat-min-width));
--chat-width: calc(var(--vw) / 3 - var(--player-width));
}

html, body
{
min-width: calc((var(--player-min-width) + var(--chat-min-width)) * 3);
min-height: min(var(--player-min-height), var(--chat-min-height));
}

.p1, .p2, .p3
{
top: 0;
bottom: 0;
width: var(--player-width);
height: auto;
}
.p1
{
left: var(--chat-width);
right: auto;
}
.p2
{
left: calc(var(--player-width) + var(--chat-width));
right: auto;
}
.p3
{
left: auto;
right: 0;
}

.c1, .c2, .c3
{
bottom: 0;
width: var(--chat-width);
height: auto;
}
.c1
{
left: 0;
right: auto;
}
.c2
{
left: calc(var(--player-width) * 2 + var(--chat-width));
right: auto;
}
.c3
{
left: auto;
right: var(--player-width);
}

.m1, .sm1, .m2, .sm2, .m3, .sm3
{
top: 0;
}
.ch1, .ch2, .ch3
{
top: var(--menu-size);
}
.m1, .ch1
{
right: calc(var(--player-width) * 2 + var(--chat-width) * 2);
}
.sm1
{
right: calc(var(--player-width) * 2 + var(--chat-width) * 2 + var(--menu-size));
}
.m2, .ch2
{
right: calc(var(--player-width) + var(--chat-width) * 2);
}
.sm2
{
right: calc(var(--player-width) + var(--chat-width) * 2 + var(--menu-size));
}
.m3, .ch3
{
right: 0;
}
.sm3
{
right: var(--menu-size);
}
